package com.xbongbong.paas.service;

import com.xbongbong.paas.pojo.dto.CoUserAddDTO;
import com.xbongbong.paas.pojo.dto.CoUserDeleteDTO;
import com.xbongbong.paas.pojo.dto.CoUserListDTO;
import com.xbongbong.paas.pojo.vo.CoUserAddVO;
import com.xbongbong.paas.pojo.vo.CoUserDeleteVO;
import com.xbongbong.paas.pojo.vo.CoUserListVO;
import com.xbongbong.paas.toolbox.exception.XbbException;

import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * @author: wufeng
 * @date: 2018/9/6 17:29
 * @desrcption: 协同人
 */
public interface CoUserService {
    /**
     * 协同人列表获取
     * @param coUserListDTO
     * @return
     * @throws XbbException
     */
    CoUserListVO list(CoUserListDTO coUserListDTO) throws XbbException;
    
    /**
     * 负责校验
     * @param coUserListDTO
     * @return
     * @throws XbbException
     */
    Map<Long, List<String>> coUserMap(CoUserListDTO coUserListDTO) throws XbbException;
    
    /**
     * 负责展示
     * @param userIdSet
     * @param coUserListDTO
     * @return
     * @throws XbbException
     */
    Map<Long, List<String>> coUserMapShow(Set<String> userIdSet, Collection<Long> formDataIdIn, String corpid) throws XbbException;
    /**
     * 增加协同人
     * @param coUserAddDTO
     * @return
     * @throws XbbException
     */
    CoUserAddVO add(CoUserAddDTO coUserAddDTO) throws XbbException;

    /**
     * 删除协同人
     * @param coUserDeleteDTO
     * @return
     * @throws XbbException
     */
    CoUserDeleteVO delete(CoUserDeleteDTO coUserDeleteDTO) throws XbbException;
}
